package com.fhsk.file.common.enums;

/**
 * 资源类型枚举
 *
 * @author wangguoqing
 */
public enum ResourceTypeEnum {
    /**
     * 文件库 文件格式
     */
    DOC("doc", 101),
    DOCX("docx", 102),
    PPT("ppt", 103),
    PPTX("pptx", 104),
    SWF("swf", 105),
    PDF("pdf", 106),
//    XLS("xls", 107),
    WPS("wps", 108),
    ET("et", 109),
    DPS("dps", 110),
//    XLSX("xlsx", 111),
    TXT("txt", 112),

    /**
     * 不解析封面和页码
     */
    XLS("xls", 701),
    XLSX("xlsx", 702),

    /**
     * 图片格式(不做处理)
     */
    JPG("jpg", 201),
    PNG("png", 202),
    GIF("gif", 203),
    BMP("bmp", 204),
    JPEG("jpeg", 205),
    TIF("tif", 206),
    TGA("tga", 207),
    /**
     * 音频格式
     */
    MP3("mp3", 301),
    WMA("wma", 302),
    M4A("m4a", 303),
    OGG("ogg", 304),
    WAV("wav", 305),
    AMR("amr",306),
    /**
     * 视频格式
     */
    AVI("avi", 401),
    FLV("flv", 402),
    MP4("mp4", 403),
    MPG("mpg", 404),
    WMV("wmv", 405),
    MKV("mkv", 406),
    RMVB("rmvb", 407),
    RM("rm", 408),
    MOV("mov", 409),
    ASF("asf", 410),
    mpeg("mpeg", 411),
    DAT("dat", 412),
    MOV2("MOV", 413),
    MP42("MP4", 414),

    /**
     * 电子书格式
     */
    MOBI("mobi", 501),
    AZW("azw", 502),
    AZW3("azw3", 503),
    EPUB("epub", 504),

    /**
     * 压缩格式 (不做处理)
     */
    ZIP("zip", 601),
    RAR("rar", 602),
    SB("sb", 603),
    APK("apk", 604);

    ResourceTypeEnum(String name, Integer value) {
        this.name = name;
        this.value = value;
    }

    private String name;

    private Integer value;

    public String getName() {
        return name;
    }

    public Integer getValue() {
        return value;
    }

    /**
     * 根据后缀名获取typeCode
     *
     * @param name
     * @return
     */
    public static Integer getBaseResourceTypeByName(String name) {
        ResourceTypeEnum[] values = ResourceTypeEnum.values();
        for (ResourceTypeEnum value : values) {
            if (value.name.equals(name.toLowerCase())) { //后缀名转为小写
                return value.value;
            }
        }
        return null;
    }

    /**
     * 根据typeCode获取后缀名
     *
     * @param value
     * @return
     */
    public static String getBaseResourceTypeByValue(Integer value) {
        ResourceTypeEnum[] names = ResourceTypeEnum.values();
        for (ResourceTypeEnum name : names) {
            if (name.value.equals(value)) {
                return name.name;
            }
        }
        return null;
    }
}
